TCP/IP
đ 36. What is TCP/IP, and why is it fundamental for data transmission?â
TCP/IP āĻšāϞ⧠āĻĻā§āĻā§ protocol-āĻāϰ āϏāĻŽāύā§āĻŦāϝāĻŧ:
- đĻ TCP (Transmission Control Protocol) â data āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻĒāĻžāĻ āĻžāύā§āϰ āύāĻŋāϝāĻŧāĻŽ
- đˇī¸ IP (Internet Protocol) â data āĻā§āĻĨāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāĻŦā§ āϏā§āĻāĻž āĻ āĻŋāĻ āĻāϰāĻžāϰ āύāĻŋāϝāĻŧāĻŽ
āĻāĻ āĻĻā§āĻā§ āĻŽāĻŋāϞ⧠internet-āĻāϰ backbone āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āϤā§āĻŽāĻžāϰ browser āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠email, video call â āϏāĻŦ āĻāĻŋāĻā§āĻ TCP/IP-āĻāϰ āĻāĻĒāϰ āĻāϞā§āĨ¤
đ TCP/IP Model â 4āĻāĻŋ Layerâ
āĻĒā§āϰāϤāĻŋāĻāĻž layer-āĻāϰ āĻāϞāĻžāĻĻāĻž āĻāĻžāĻ āĻāĻā§ â āĻāĻāĻāĻž āĻāϰā§āĻāĻāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤
đ ī¸ āĻĒā§āϰāϤāĻŋāĻāĻŋ Layer āĻā§ āĻāϰā§?â
Layer 1 â Network Access Layer (āϏāĻŦāĻžāϰ āύāĻŋāĻā§)â
Physical medium āĻĻāĻŋāϝāĻŧā§ data āĻĒāĻžāĻ āĻžāύā§āϰ āĻāĻžāĻ āĻāϰā§āĨ¤
āĻāĻžāĻ: bits â electrical signal / radio wave / light pulse
āĻāĻĻāĻžāĻšāϰāĻŖ: Ethernet cable, Wi-Fi, fiber optic
Layer 2 â Internet Layerâ
Data āĻā§āύ path āĻĻāĻŋāϝāĻŧā§ āϝāĻžāĻŦā§ āϏā§āĻāĻž āĻ āĻŋāĻ āĻāϰā§āĨ¤
āĻāĻžāĻ: IP address āĻĻā§āĻā§ āϏāĻ āĻŋāĻ destination āĻā§āĻāĻā§
IP packet āϤā§āϰāĻŋ āĻāϰ⧠â source IP + destination IP āϝā§āĻ āĻāϰā§
Router āĻāĻ layer-āĻ āĻāĻžāĻ āĻāϰā§
Layer 3 â Transport Layerâ
Data āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻĒā§āĻāĻāĻžāĻā§āĻā§ āĻāĻŋāύāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āĨ¤
TCP: āύāĻŋāĻļā§āĻāĻŋāϤ delivery, error check, order maintain
UDP: āĻĻā§āϰā§āϤ āĻāĻŋāύā§āϤ⧠guarantee āύā§āĻ
Port number āĻāĻ layer-āĻ āĻĨāĻžāĻā§ (80, 443, 22...)
Layer 4 â Application Layer (āϏāĻŦāĻžāϰ āĻāĻĒāϰā§)â
User āϝāĻž āĻĻā§āĻā§ āϏā§āĻ data āϤā§āϰāĻŋ āĻšāϝāĻŧ āĻāĻāĻžāύā§āĨ¤
HTTP â webpage
SMTP â email
DNS â domain name lookup
FTP â file transfer
đ TCP āĻā§āĻāĻžāĻŦā§ Data āĻĒāĻžāĻ āĻžāϝāĻŧ?â
āϧāĻžāĻĒ ā§§ â Three-Way Handshake (Connection āϏā§āĻĨāĻžāĻĒāύ)â
PreviewClick to view details
Client Server
| |
|â ââ SYN âââââââââââââââââ | "āĻāĻŽāĻŋ connect āĻāϰāϤ⧠āĻāĻžāĻ"
| |
| ââââ SYN-ACK ââââââââââââ| "āĻ āĻŋāĻ āĻāĻā§, āĻāĻŽāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ"
| |
|âââ ACK âââââââââââââââââ | "āĻāĻŽā§āĻāĻžāϰ, āĻļā§āϰ⧠āĻāϰāĻŋ"
| |
|====== Data Transfer ======|
āϧāĻžāĻĒ ā§¨ â Data Segmentation (āĻāĻžāĻ āĻāϰāĻž)â
āĻŦāĻĄāĻŧ data āĻāĻāĻŦāĻžāϰ⧠āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻž â TCP āϏā§āĻāĻž āĻā§āĻ āĻā§āĻ segment-āĻ āĻāĻžāĻ āĻāϰā§:
PreviewClick to view details
"Hello, how are you doing today?" (32 bytes)
â TCP āĻāĻžāĻ āĻāϰā§
Segment 1: "Hello, how" [Seq: 1]
Segment 2: " are you do" [Seq: 2]
Segment 3: "ing today?" [Seq: 3]
āĻĒā§āϰāϤāĻŋāĻāĻž segment-āĻ āĻĨāĻžāĻā§:
â Sequence number (order āĻāĻžāύāĻžāϰ āĻāύā§āϝ)
â Checksum (error detect āĻāϰāĻžāϰ āĻāύā§āϝ)
â Source & destination port
āϧāĻžāĻĒ ā§Š â IP Routing (āĻĒāĻĨ āĻā§āĻāĻāĻž)â
TCP segment-āĻāϰ āĻāĻĒāϰ IP āĻāĻāĻāĻž header āϝā§āĻ āĻāϰ⧠â āĻāĻāĻžāĻ packet:
PreviewClick to view details
IP Packet:
âââââââââââââââââââââââââââââââââââ
â Source IP: 192.168.1.5 â
â Destination IP: 142.250.80.46 â
â TTL: 64 â
âââââââââââââââââââââââââââââââââââ¤
â TCP Segment (data) â
âââââââââââââââââââââââââââââââââââ
Router āĻāĻ destination IP āĻĻā§āĻā§ packet forward āĻāϰā§
āĻĒā§āϰāϤāĻŋāĻāĻž packet āĻāϞāĻžāĻĻāĻž route āύāĻŋāϤ⧠āĻĒāĻžāϰā§!
āϧāĻžāĻĒ ā§Ē â ACK āĻ Retransmissionâ
PreviewClick to view details
Sender: Segment 1 āĻĒāĻžāĻ āĻžāϞ⧠â
Receiver: āĻĒā§āϞ⧠â ACK 1 āĻĒāĻžāĻ āĻžāϞ⧠â
Sender: Segment 2 āĻĒāĻžāĻ āĻžāϞ⧠â
Receiver: āĻĒā§āϞ⧠āύāĻž! (lost)
Sender: Timeout â Segment 2 āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϞ⧠â
Receiver: āĻāĻāύ āĻĒā§āϞ⧠â ACK 2 â
đ§Š āϧāĻžāĻĒ ā§Ģ â Reassembly (āĻā§āĻĄāĻŧāĻž āϞāĻžāĻāĻžāύā§)â
PreviewClick to view details
Receiver āĻĒā§āϞ⧠(out of order):
Segment 3, Segment 1, Segment 2
Sequence number āĻĻā§āĻā§ āϏāĻ āĻŋāĻ order-āĻ āϏāĻžāĻāĻžāϝāĻŧ:
Segment 1 + Segment 2 + Segment 3
â
"Hello, how are you doing today?" â
đ āĻāĻāĻāĻž Webpage Load āĻšāĻāϝāĻŧāĻžāϰ āĻĒā§āϰ⧠āϝāĻžāϤā§āϰāĻžâ
PreviewClick to view details
āϤā§āĻŽāĻŋ browser-āĻ āϞāĻŋāĻāϞā§: google.com
1. DNS lookup:
google.com â 142.250.80.46 (IP āĻŦā§āϰ āĻāϰāĻž)
2. TCP Handshake:
āϤā§āĻŽāĻžāϰ PC â Google server (SYN/SYN-ACK/ACK)
3. TLS Handshake:
Encrypted connection āϤā§āϰāĻŋ (HTTPS-āĻāϰ āĻāύā§āϝ)
4. HTTP Request:
"GET / HTTP/1.1" āĻĒāĻžāĻ āĻžāύā§
5. IP Routing:
Packet āϤā§āĻŽāĻžāϰ router â ISP â Google-āĻāϰ server
6. HTTP Response:
Google HTML āĻĒāĻžāĻ āĻžāϞ⧠â segments āĻšāϝāĻŧā§ āĻāϏāϞā§
7. TCP Reassembly:
Segments āĻā§āĻĄāĻŧāĻž āϞā§āĻā§ āĻĒā§āϰ⧠HTML āϤā§āϰāĻŋ āĻšāϞā§
8. Browser render:
āϤā§āĻŽāĻŋ Google āĻĻā§āĻāϤ⧠āĻĒā§āϞ⧠â
đ¯ āĻā§āύ TCP/IP "Fundamental"?â
TCP/IP fundamental āĻāĻžāϰāĻŖ āĻāĻāĻž āĻāĻāĻāĻž universal standard â āϝā§āĻā§āύ⧠device, āϝā§āĻā§āύ⧠OS, āϝā§āĻā§āύ⧠āĻĻā§āĻļ â āϏāĻŦāĻžāĻ āĻāĻāĻ āύāĻŋāϝāĻŧāĻŽā§ āĻāĻĨāĻž āĻŦāϞā§āĨ¤
PreviewClick to view details
āϤā§āĻŽāĻžāϰ Android phone (Bangladesh)
â TCP/IP
Apple server (USA)
â TCP/IP
Linux server (Germany)
āϏāĻŦāĻžāĻ āĻāĻāĻ protocol āĻŦā§āĻā§ â interoperability â
TCP/IP āĻāĻžāĻĄāĻŧāĻž āĻĒā§āϰāϤāĻŋāĻāĻž company-āϰ āĻāϞāĻžāĻĻāĻž protocol āĻĨāĻžāĻāϤ⧠āĻāĻŦāĻ āϤāĻžāϰāĻž āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻĨāĻž āĻŦāϞāϤ⧠āĻĒāĻžāϰāϤ⧠āύāĻž â āĻ āĻŋāĻ āϝā§āĻŽāύ āĻĻā§āĻāύ āĻŽāĻžāύā§āώ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϞāĻžāĻĻāĻž āĻāĻžāώāĻžāϝāĻŧ āĻāĻĨāĻž āĻŦāϞāϞ⧠āĻŦā§āĻā§ āύāĻžāĨ¤
đˇī¸ IP = āĻ āĻŋāĻāĻžāύāĻž āϞā§āĻā§ (āĻā§āĻĨāĻžāϝāĻŧ āϝāĻžāĻŦā§)
đĻ TCP = āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āĻĒā§āĻāĻā§ āĻĻā§āϝāĻŧ (āĻ āĻŋāĻāĻŽāϤ⧠āĻĒā§āĻāĻāĻžāϞ⧠āĻāĻŋāύāĻž)
đ TCP/IP āĻāĻāϏāĻžāĻĨā§ = internet-āĻāϰ āĻĄāĻžāĻāĻŦāĻŋāĻāĻžāĻ â āĻāĻŋāĻ āĻŋ āĻāĻžāĻ āĻāϰā§, āĻ āĻŋāĻāĻžāύāĻž āϞāĻŋāĻā§, āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āĻĒāĻžāĻ āĻžāϝāĻŧ, āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
đ What does the IP layer actually do, and how does it relate to TCP?â
PreviewClick to view details
TCP = āĻĄāĻžāĻāĻŦāĻŋāĻāĻžāĻā§āϰ āύāĻŋāϝāĻŧāĻŽāĻāĻžāύā§āύ
(āĻāĻŋāĻ āĻŋ āύāĻŽā§āĻŦāϰ āĻĻāĻžāĻ, āĻšāĻžāϰāĻžāϞ⧠āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāĻ, order āĻ āĻŋāĻ āϰāĻžāĻā§)
IP = āĻĄāĻžāĻāĻĒāĻŋāϝāĻŧāύ
(āĻ āĻŋāĻāĻžāύāĻž āĻĻā§āĻā§, āϰāĻžāϏā§āϤāĻž āĻā§āĻāĻā§, āĻĻāϰāĻāĻžāϝāĻŧ āĻĒā§āĻāĻā§ āĻĻā§āϝāĻŧ)
āĻāĻāĻž TCP āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻž â āĻāĻžāύ⧠āύāĻž āĻā§āĻĨāĻžāϝāĻŧ āϝāĻžāĻŦā§
āĻāĻāĻž IP āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻž â āĻāĻžāύ⧠āύāĻž āĻĒā§āĻāĻāĻžāϞ⧠āĻāĻŋāύāĻž
āĻāĻāϏāĻžāĻĨā§ TCP/IP = āϏāĻŽā§āĻĒā§āϰā§āĻŖ delivery system
đ IP Layer-āĻāϰ āĻŽā§āϞ ā§ŠāĻāĻŋ āĻāĻžāĻâ
đ āĻāĻžāĻ ā§§: Addressing â āĻĒā§āϰāϤāĻŋāĻāĻŋ Packet-āĻ āĻ āĻŋāĻāĻžāύāĻž āϞā§āĻāĻžâ
TCP āϝāĻāύ data-āĻā§ segments-āĻ āĻāĻžāĻ āĻāϰā§, IP āϏā§āĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ segment-āĻāϰ āĻāĻĒāϰ āĻāĻāĻāĻž header āĻā§āĻĄāĻŧā§ āĻĻā§āϝāĻŧ:
PreviewClick to view details
TCP Segment (āĻļā§āϧ⧠data):
ââââââââââââââââââââââââââââ
â Port 443 â Port 52341 â
â Seq: 1, Data: "Hello" â
ââââââââââââââââââââââââââââ
IP Header āϝā§āĻ āĻāϰāĻžāϰ āĻĒāϰ (IP Packet):
ââââââââââââââââââââââââââââââââââââââââ
â Source IP: 192.168.1.5 â
â Destination IP: 142.250.80.46 â
â TTL: 64 â
â Protocol: TCP (6) â
ââââââââââââââââââââââââââââââââââââââââ¤
â TCP Segment āĻā§āϤāϰ⧠āĻāĻā§ (payload) â
ââââââââââââââââââââââââââââââââââââââââ
TTL (Time To Live) āĻāĻāĻāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ field â āĻĒā§āϰāϤāĻŋāĻāĻŋ router-āĻ āĻāĻāĻž 1 āĻāϰ⧠āĻāĻŽā§āĨ¤ āĻļā§āύā§āϝ āĻšāϞ⧠packet āĻŽā§āĻā§ āϝāĻžāϝāĻŧ â āĻāϤ⧠infinite loop āĻŦāύā§āϧ āĻšāϝāĻŧāĨ¤
đēī¸ āĻāĻžāĻ ā§¨: Routing â āϏāĻ āĻŋāĻ āĻĒāĻĨā§ āĻĒāĻžāĻ āĻžāύā§â
IP-āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻžāĻ āĻšāϞ⧠packet-āĻā§ āϏāĻ āĻŋāĻ destination-āĻ āĻĒā§āĻāĻā§ āĻĻā§āĻāϝāĻŧāĻžāĨ¤ āĻāĻāĻž āĻšāϝāĻŧ hop by hop â router āĻĨā§āĻā§ router: āĻĒā§āϰāϤāĻŋāĻāĻŋ router āĻāĻāĻāĻžāĻ āĻĒā§āϰāĻļā§āύ āĻāϰā§: "āĻāĻ destination IP-āĻāϰ āĻāύā§āϝ āĻāĻŽāĻžāϰ next hop āĻā§?" â routing table āĻĻā§āĻā§ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āϝāĻŧ, āϤāĻžāϰāĻĒāϰ forward āĻāϰā§āĨ¤
IP-āĻāϰ āĻāĻāĻāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻšāϞ⧠āĻāĻāĻž "best effort" â packet āĻĒā§āĻāĻāĻžāĻŦā§ āĻāĻŋāύāĻž, āĻāϤāĻā§āώāĻŖ āϞāĻžāĻāĻŦā§, order āĻ āĻŋāĻ āĻĨāĻžāĻāĻŦā§ āĻāĻŋāύāĻž â āĻāϰ āĻā§āύ⧠guarantee āύā§āĻāĨ¤ āĻāĻāĻž TCP-āĻāϰ āĻāĻžāĻāĨ¤
đĒ āĻāĻžāĻ ā§Š: Fragmentation â āĻŦāĻĄāĻŧ Packet āĻāĻžāĻāĻžâ
āĻĒā§āϰāϤāĻŋāĻāĻŋ network link-āĻāϰ āĻāĻāĻāĻž MTU (Maximum Transmission Unit) āĻāĻā§ â āϏāϰā§āĻŦā§āĻā§āĻ āĻāϤ āĻŦāĻĄāĻŧ packet āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāĻŦā§āĨ¤
PreviewClick to view details
Ethernet MTU = 1500 bytes
āϤā§āĻŽāĻžāϰ packet = 4000 bytes â āϧāϰ⧠āύāĻž!
IP āĻā§āĻā§ āĻĢā§āϞā§:
Fragment 1: bytes 1â1480 [offset: 0, MF=1]
Fragment 2: bytes 1481â2960 [offset: 185, MF=1]
Fragment 3: bytes 2961â4000 [offset: 370, MF=0]
MF = More Fragments flag
MF=1 āĻŽāĻžāύ⧠āĻāϰ⧠āĻāϏāĻā§, MF=0 āĻŽāĻžāύ⧠āĻļā§āώ fragment
Destination-āĻ IP āϏāĻŦ fragment āĻā§āĻĄāĻŧāĻž āϞāĻžāĻāĻŋāϝāĻŧā§ āĻāĻŦāĻžāϰ āĻŽā§āϞ packet āϤā§āϰāĻŋ āĻāϰā§āĨ¤
đ¤ TCP āĻāϰ IP āĻā§āĻāĻžāĻŦā§ āĻāĻāϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰā§â
āĻāĻāĻžāĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻ āĻāĻļāĨ¤ āĻĻā§āĻā§ layer-āĻāϰ āĻāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϞāĻžāĻĻāĻž āĻāĻŋāύā§āϤ⧠āĻāĻā§ āĻ āĻĒāϰā§āϰ āĻĒāϰāĻŋāĻĒā§āϰāĻ:
PreviewClick to view details
āϤā§āĻŽāĻŋ browser-āĻ "Send" āĻāĻžāĻĒāϞā§:
Application Layer:
HTTP request āϤā§āϰāĻŋ: "GET /index.html"
â
Transport Layer (TCP):
Data-āĻā§ segments-āĻ āĻāĻžāĻ āĻāϰā§
Sequence number āĻĻā§āϝāĻŧ: Seg-1, Seg-2, Seg-3
Port number āϝā§āĻ āĻāϰā§: 52341 â 443
â
Internet Layer (IP):
āĻĒā§āϰāϤāĻŋāĻāĻŋ segment-āĻ IP header āϝā§āĻ āĻāϰā§
Source: 192.168.1.5, Dest: 142.250.80.46
Packet āϤā§āϰāĻŋ āĻšāϝāĻŧ
â
Network Layer:
Binary bits āĻšāϝāĻŧā§ cable/Wi-Fi āĻĻāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧ
âââââââ Network āĻĒāĻžāϰ āĻšāϝāĻŧ ā§ âââââââ
Receiver-āĻāϰ Network Layer:
Bits â packet
â
IP Layer:
Header āĻā§āϞ⧠āĻĻā§āĻā§ â āĻāĻāĻž āĻāĻŋ āĻāĻŽāĻžāϰ āĻāύā§āϝ? āĻšā§āϝāĻžāĻ!
TCP segment āĻŦā§āϰ āĻāϰ⧠āĻāĻĒāϰ⧠āĻĻā§āϝāĻŧ
â
TCP Layer:
Sequence number āĻĻā§āĻā§ order āĻ āĻŋāĻ āĻāϰā§
ACK āĻĒāĻžāĻ āĻžāϝāĻŧ
āĻĒā§āϰ⧠data āĻā§āĻĄāĻŧāĻž āϞāĻžāĻāĻžāϝāĻŧ
â
Application:
"GET /index.html" āĻĒā§āϞā§, response āĻĒ āĻžāĻ āĻžāϝāĻŧ
đĩī¸ââī¸ IP āĻšāϞ⧠"Stateless" â āĻāĻāĻž āĻāĻŋāĻā§ āĻŽāύ⧠āϰāĻžāĻā§ āύāĻžâ
āĻāĻāĻž TCP-āĻāϰ āϏāĻžāĻĨā§ IP-āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻĒāĻžāϰā§āĻĨāĻā§āϝ:
| āĻŦāĻŋāώāϝāĻŧ | IP | TCP |
|---|---|---|
| State āĻŽāύ⧠āϰāĻžāĻā§? | āύāĻž â āĻĒā§āϰāϤāĻŋāĻāĻŋ packet āĻāϞāĻžāĻĻāĻž | āĻšā§āϝāĻžāĻ â connection track āĻāϰ⧠|
| Delivery guarantee | āύā§āĻ | āĻāĻā§ |
| Order maintain | āύā§āĻ | āĻāĻā§ |
| Error recovery | āύā§āĻ | āĻāĻā§ |
| āĻāĻžāĻā§āϰ āϧāϰāύ | Just deliver āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰ⧠| Reliable connection maintain āĻāϰ⧠|
PreviewClick to view details
IP āĻāĻžāĻŦā§:
"Packet 1 āĻā§āĻĨāĻžāϝāĻŧ āĻā§āĻā§ āĻāĻžāύāĻŋ āύāĻž, āĻāĻŽāĻžāϰ āĻāĻžāĻ āĻāĻŋāϞ forward āĻāϰāĻž"
"Packet 2 āĻāϞāĻžāĻĻāĻž route āύāĻŋāϝāĻŧā§āĻā§ â āĻ āĻŋāĻ āĻāĻā§"
"Packet 3 āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āĻā§ â āĻāĻŽāĻžāϰ āϏāĻŽāϏā§āϝāĻž āύāĻž"
TCP āĻāĻžāĻŦā§:
"Packet 3 āĻāĻāύ⧠ACK āĻāϏā§āύāĻŋ â āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāĻ"
"Packet 2 āĻāĻā§ āĻāϏā§āĻā§, Packet 1 āĻĒāϰ⧠â order āĻ āĻŋāĻ āĻāϰāĻŋ"
"āϏāĻŦ āĻĒā§āϞāĻžāĻŽ, application-āĻā§ āĻĻāĻŋāĻ"
đ§ŗ IP Packet-āĻāϰ āĻā§āϤāϰ⧠āĻāϏāϞ⧠āĻā§ āĻĨāĻžāĻā§?â
PreviewClick to view details
IP Header (20 bytes minimum):
ââââââââââââââââââââââââââââââââââââââ
â Version (4 bits): IPv4 = 4 â
â Header Length (4 bits) â
â Total Length (16 bits) â
â TTL (8 bits): 64, 128... â
â Protocol (8 bits): TCP=6, UDP=17 â
â Header Checksum (16 bits) â
â Source IP (32 bits) â
â Destination IP (32 bits) â
ââââââââââââââââââââââââââââââââââââââ¤
â Payload = TCP Segment â
â (āϝā§āĻāĻžāύ⧠actual data āĻāĻā§) â
ââââââââââââââââââââââââââââââââââââââ
Protocol field āĻāĻž āĻŦāĻŋāĻļā§āώ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ â āĻāĻāĻž āĻĻā§āĻā§ destination āĻāĻžāύ⧠payload-āĻāϰ āĻā§āϤāϰ⧠āĻā§ āĻāĻā§āĨ¤ 6 āĻŽāĻžāύ⧠TCP, 17 āĻŽāĻžāύ⧠UDP, 1 āĻŽāĻžāύ⧠ICMP (ping)āĨ¤
đĻ TCP āĻŦāϞā§: "āĻāĻŽāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻŦā§ data āĻ āĻŋāĻāĻ āĻžāĻ āĻĒā§āĻāĻāĻžāĻŦā§"
đˇī¸ IP āĻŦāϞā§: "āĻāĻŽāĻŋ āϰāĻžāϏā§āϤāĻž āĻā§āĻāĻā§ āĻĻā§āĻŦā§, āĻŦāĻžāĻāĻŋāĻāĻž āϤā§āĻŽāĻžāϰ āĻĻāĻžāϝāĻŧ"
āĻĻā§āĻāύ āĻŽāĻŋāϞ⧠āĻāĻžāĻ āĻāϰ⧠â TCP-āϰ reliability āĻāϰ IP-āϰ routing āĻāĻāϏāĻžāĻĨā§ internet-āĻā§ āĻāĻžāĻ āĻāϰāĻžāϝāĻŧāĨ¤
đ What is the difference between the TCP/IP model and the OSI model?â
| āĻŦā§āĻļāĻŋāώā§āĻā§āϝ | OSI Model | TCP/IP Model |
|---|---|---|
| āĻāĻĻā§āĻĻā§āĻļā§āϝ | āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĨāĻŋāĻāϰā§āĻāĻŋāĻā§āϝāĻžāϞ āĻāĻžāĻāĻĄāϞāĻžāĻāύ āĻŦāĻž āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻŽāĻĄā§āϞāĨ¤ | āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦā§ āĻāύā§āĻāĻžāϰāύā§āĻā§ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāĻāϝāĻŧāĻž āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āĻŽāĻĄā§āϞāĨ¤ |
| āϞā§āϝāĻŧāĻžāϰ āϏāĻāĻā§āϝāĻž | ā§āĻāĻŋ āϞā§āϝāĻŧāĻžāϰ āĻĨāĻžāĻā§āĨ¤ | ā§ĒāĻāĻŋ āϞā§āϝāĻŧāĻžāϰ āĻĨāĻžāĻā§ (Application, Transport, Internet, Network Access)āĨ¤ |
| āĻā§āĻĒāϤā§āϤāĻŋ | ISO (International Organization for Standardization) āϤā§āϰāĻŋ āĻāϰā§āĻā§āĨ¤ | ARPANET-āĻāϰ āĻāύā§āϝ Department of Defense (DoD) āϤā§āϰāĻŋ āĻāϰā§āĻā§āĨ¤ |
đĄī¸ 37. How does TCP ensure reliable data transfer via packet acknowledgment and retransmission?â
TCP āĻšāϞ⧠āĻāĻāĻāĻŋ Reliable āĻŦāĻž āĻ āϤā§āϝāύā§āϤ āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝ āĻĒā§āϰā§āĻā§āĻāϞāĨ¤ āĻāĻāĻŋ āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻĒā§āĻāĻāĻžāύā§āϰ āύāĻŋāĻļā§āĻāϝāĻŧāϤāĻž āĻĻāĻŋāϤ⧠āĻĻā§āĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:
- â Acknowledgment (ACK): āϏā§āύā§āĻĄāĻžāϰ (Sender) āĻā§āύ⧠āĻĄā§āĻāĻž āĻĒā§āϝāĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰ āϰāĻŋāϏāĻŋāĻāĻžāϰ (Receiver) āϏā§āĻāĻŋ āĻ āĻŋāĻāĻ āĻžāĻ āϰāĻŋāϏāĻŋāĻ āĻāϰāϞā§, āϤāĻžāϰ āĻĒā§āϰāĻŽāĻžāĻŖ āĻšāĻŋāϏā§āĻŦā§ āĻĢāĻŋāϰāϤāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻŽā§āϏā§āĻ āĻĒāĻžāĻ āĻžāϝāĻŧ, āϝāĻžāĻā§ ACK āĻŦāϞā§āĨ¤
- đ Retransmission: āϏā§āύā§āĻĄāĻžāϰ āĻĒā§āϝāĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰ āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽāĻžāϰ (Timer) āĻ āύ āĻāϰ⧠āϰāĻžāĻā§āĨ¤ āϝāĻĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āĻāĻžāĻ āĻĨā§āĻā§ āĻā§āύ⧠ACK āύāĻž āĻāϏā§, āϤāĻāύ āϏā§āύā§āĻĄāĻžāϰ āϧāϰ⧠āύā§āϝāĻŧ āϝ⧠āĻĒā§āϝāĻžāĻā§āĻāĻāĻŋ āĻŽāĻžāĻāĻĒāĻĨā§ āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āĻā§āĨ¤ āĻĢāϞ⧠āϏ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāĻ āĻĒā§āϝāĻžāĻā§āĻāĻāĻŋ āĻāĻŦāĻžāϰ āϰāĻŋāĻā§āϰāĻžāύā§āϏāĻŽāĻŋāĻ āĻŦāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
đĒ What is the sliding window protocol in TCP?â
TCP-āϤ⧠āĻĒā§āϰāϤ āĻŋāĻāĻŋ packet āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰ ACK-āĻāϰ āĻāύā§āϝ āĻ āĻĒā§āĻā§āώāĻž āĻāϰāϞ⧠āĻā§ āĻšāϝāĻŧ?
PreviewClick to view details
Stop-and-Wait (naive approach):
Sender: [Seg 1] âââââ
âââââ [ACK 1]
[Seg 2] âââââ
âââââ [ACK 2]
[Seg 3] âââââ
âââââ [ACK 3]
āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻĒāĻžāĻ āĻŋāϝāĻŧā§ āĻŦāϏ⧠āĻĨāĻžāĻā§ â network āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ āĻāĻžāϞāĻŋ!
āĻāĻāĻž āĻ
āύā§āĻ āϧā§āϰ â
āĻāĻ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ⧠Sliding Window Protocol â āĻāĻāϏāĻžāĻĨā§ āĻ āύā§āĻāĻā§āϞ⧠packet āĻĒāĻžāĻ āĻžāĻ, ACK-āĻāϰ āĻāύā§āϝ āĻŦāϏ⧠āĻĨā§āĻā§ āύāĻžāĨ¤
đŧī¸ Sliding Window-āĻāϰ āĻŽā§āϞ Ideaâ
đī¸ Window Size āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§â
Window size āĻŽāĻžāύ⧠āĻšāϞ⧠āĻāĻāĻŦāĻžāϰ⧠āĻāϤāĻā§āĻā§ unacknowledged data "in flight"-āĻ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
PreviewClick to view details
Window size = 4 segments:
Sender āĻāĻ 4āĻāĻž āĻāĻāϏāĻžāĻĨā§ āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§:
[Seg 1][Seg 2][Seg 3][Seg 4] â â â network-āĻ āĻāĻĄāĻŧāĻā§
ACK 1 āĻāϞ⧠â window āϏāϰāϞā§:
[Seg 2][Seg 3][Seg 4][Seg 5] â Seg 5 āĻāĻāύ āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāĻŦā§
ACK 2 āĻāϞ⧠â āĻāĻŦāĻžāϰ āϏāϰāϞā§:
[Seg 3][Seg 4][Seg 5][Seg 6] â Seg 6 āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāĻŦā§
Window āϏāĻŦāϏāĻŽāϝāĻŧ fixed āϏāĻāĻā§āϝāĻ unACKed segment āϰāĻžāĻā§ in-flightāĨ¤
đĒ āĻĻā§āĻ āϧāϰāύā§āϰ Windowâ
TCP-āϤ⧠āĻāϏāϞ⧠āĻĻā§āĻā§ āĻāϞāĻžāĻĻāĻž window āĻāĻžāĻ āĻāϰ⧠â āĻāĻ āĻĻā§āĻā§ āĻŽāĻŋāϞāĻŋāϝāĻŧā§āĻ actual window size āĻ āĻŋāĻ āĻšāϝāĻŧ:
ā§§. Receive Window (rwnd) â Flow Controlâ
Receiver āĻŦāϞā§: "āĻāĻŽāĻžāϰ buffer-āĻ āĻāĻāύ āĻāϤāĻā§āĻā§ āĻāĻžāϝāĻŧāĻāĻž āĻāĻā§, āĻāϰ āĻŦā§āĻļāĻŋ āĻĒāĻžāĻ āĻŋāĻ āύāĻžāĨ¤"
Receiver-āĻāϰ buffer: 16KB
āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāϰāĻž: 4KB
rwnd = 16 - 4 = 12KB â ACK-āĻāϰ āϏāĻžāĻĨā§ sender-āĻā§ āĻāĻžāύāĻžāϝāĻŧ
Sender āϏāϰā§āĻŦā§āĻā§āĻ 12KB āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰāĻŦā§
⧍. Congestion Window (cwnd) â Congestion Controlâ
Sender āύāĻŋāĻā§ āύāĻŋāĻā§ āĻ āĻŋāĻ āĻāϰā§: "network āĻāϤāĻā§āĻā§ āϏāĻžāĻŽāϞāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§?"
Actual window = min(rwnd, cwnd)
rwnd = 12KB (receiver āĻŦāϞā§āĻā§)
cwnd = 8KB (sender āĻŽāύ⧠āĻāϰ⧠network āĻāϤāĻā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§)
â Actual window = 8KB
đĻ Congestion Control â Window āĻā§āĻāĻžāĻŦā§ āĻŦāĻžāĻĄāĻŧā§-āĻāĻŽā§â
TCP āĻāĻžāϞ⧠āĻšāϞ⧠āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻŦāĻĄāĻŧ window āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰ⧠āύāĻž â āϧā§āϰ⧠āϧā§āϰ⧠āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤
Slow Startâ
PreviewClick to view details
āĻļā§āϰā§āϤ⧠cwnd = 1 segment
āĻĒā§āϰāϤāĻŋāĻāĻŋ ACK āĻĒā§āϞ⧠cwnd āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻšāϝāĻŧ:
Round 1: cwnd = 1 â 1 segment āĻĒāĻžāĻ āĻžāϝāĻŧ
Round 2: cwnd = 2 â 2 segment āĻĒāĻžāĻ āĻžāϝāĻŧ
Round 3: cwnd = 4 â 4 segment āĻĒāĻžāĻ āĻžāϝāĻŧ
Round 4: cwnd = 8 â 8 segment āĻĒāĻžāĻ āĻžāϝāĻŧ
(exponential growth!)
Congestion Avoidance (Threshold āĻĒāĻžāϰ āĻšāϞā§)â
ssthresh = 16 (slow start threshold) āĻĒāĻžāϰ āĻšāϞā§:
āϧā§āϰ⧠āĻŦāĻžāĻĄāĻŧā§ â āĻĒā§āϰāϤāĻŋ round-āĻ +1:
cwnd = 17, 18, 19... (linear growth)
Packet Loss āĻšāϞā§â
PreviewClick to view details
Timeout āĻšāϞā§:
ssthresh = cwnd / 2
cwnd = 1 (āĻāĻŦāĻžāϰ āĻļā§āϰ⧠āĻĨā§āĻā§!)
3 duplicate ACK āĻĒā§āϞ⧠(Fast Retransmit):
ssthresh = cwnd / 2
cwnd = ssthresh (āĻ
āϤāĻāĻž āĻāĻŽā§ āύāĻž)
đ¨ Error āĻšāϞ⧠āĻā§ āĻšāϝāĻŧ â āĻĻā§āĻā§ Strategyâ
Go-Back-Nâ
PreviewClick to view details
Seg 1 â â
Seg 2 â â
Seg 3 â â āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āĻā§!
Seg 4 â â
(āĻāĻŋāύā§āϤ⧠discard â order āĻŽāĻžāύāϤ⧠āĻšāĻŦā§)
Seg 5 â â
(āĻāĻŋāύā§āϤ⧠discard)
Sender-āĻā§ Seg 3, 4, 5 āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§
â āĻ
āύā§āĻ wasteful āĻāĻŋāύā§āϤ⧠simple
Selective Repeat (TCP āϝā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§)â
PreviewClick to view details
Seg 1 â â
Seg 2 â â
Seg 3 â â āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āĻā§!
Seg 4 â â
buffer-āĻ āϰā§āĻā§ āĻĻāĻžāĻ
Seg 5 â â
buffer-āĻ āϰā§āĻā§ āĻĻāĻžāĻ
āĻļā§āϧ⧠Seg 3 āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāĻ (SACK â Selective ACK)
â āĻĻāĻā§āώ, āĻāĻŽ retransmission
đ Stop-and-Wait vs Sliding Window â āĻĒāĻžāϰā§āĻĨāĻā§āϝâ
PreviewClick to view details
Stop-and-Wait (window=1):
Time: |--Seg1--|--wait--|--Seg2--|--wait--|--Seg3--|
Network āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ idle
Sliding Window (window=4):
Time: |--Seg1-Seg2-Seg3-Seg4--|--Seg5-Seg6-Seg7-Seg8--|
Network āϏāĻŦāϏāĻŽāϝāĻŧ āĻŦā§āϝāϏā§āϤ â throughput āĻ
āύā§āĻ āĻŦā§āĻļāĻŋ
đ Bandwidth-Delay Product â Window āĻāϤāĻāĻž āĻŦāĻĄāĻŧ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ?â
Optimal window size āĻŦā§āϰ āĻāϰāĻžāϰ āĻāĻāĻāĻž āϏāĻšāĻ formula āĻāĻā§:
PreviewClick to view details
Bandwidth = 100 Mbps
Round Trip Time (RTT) = 100ms
Optimal window = 100 Mbps à 100ms = 10 Mb = 1.25 MB
āĻŽāĻžāύ⧠network āϏāĻŦāϏāĻŽāϝāĻŧ āĻŦā§āϝāϏā§āϤ āϰāĻžāĻāϤā§
in-flight-āĻ āϏāϰā§āĻŦāĻĻāĻž 1.25MB data āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤāĨ¤
Window āĻāϰ āĻā§āϝāĻŧā§ āĻā§āĻ āĻšāϞā§: network āĻāĻžāϞāĻŋ āĻĨāĻžāĻā§, āϧā§āϰ
Window āĻāϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻšāϞā§: congestion, packet loss
đ Sliding Window āĻšāϞ⧠highway-āϤ⧠āĻāĻžāĻĄāĻŧāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻŽāϤā§āĨ¤
đ Stop-and-Wait = āĻāĻāĻāĻž āĻāĻžāĻĄāĻŧāĻŋ āĻĒāĻžāĻ āĻžāĻ, destination-āĻ āĻĒā§āĻāĻāĻžāύā§āϰ confirm āĻĒā§āϞ⧠āĻĒāϰā§āϰāĻāĻž āĻĒāĻžāĻ āĻžāĻāĨ¤ Highway āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ āĻĢāĻžāĻāĻāĻžāĨ¤
đŖī¸ Sliding Window = ā§ĒāĻāĻž āĻāĻžāĻĄāĻŧāĻŋ āĻāĻāϏāĻžāĻĨā§ āĻĒāĻžāĻ āĻžāĻāĨ¤ āĻĒā§āϰāĻĨāĻŽāĻāĻžāϰ confirm āĻĒā§āϞ⧠ā§ĢāĻŽ āĻāĻžāĻĄāĻŧāĻŋ āϰāĻāύāĻž āĻĻāĻžāĻāĨ¤ Highway āϏāĻŦāϏāĻŽāϝāĻŧ āĻāϰāĻž, āĻā§āύ⧠āϏāĻŽāϝāĻŧ āύāώā§āĻ āύā§āĻāĨ¤
đĸ What is TCP slow start and how does it affect initial connection speed?â
TCP Slow Start āĻšāϞ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§āϰ āĻāύāĻā§āĻļāύ (Congestion) āĻŦāĻž āϝāĻžāύāĻāĻ āĻāĻĄāĻŧāĻžāύā§āϰ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽāĨ¤
- āϝāĻāύ āĻāĻāĻāĻŋ āύāϤā§āύ TCP āĻāĻžāύā§āĻāĻļāύ āĻļā§āϰ⧠āĻšāϝāĻŧ, āϤāĻāύ āϏā§āύā§āĻĄāĻžāϰ āĻāĻžāύ⧠āύāĻž āϝ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§āϰ āϏā§āĻĒāĻŋāĻĄ āĻāϤāĻā§āĻā§āĨ¤ āϤāĻžāĻ āϏ⧠āĻĒā§āϰāĻĨāĻŽā§ āĻā§āĻŦ āĻāĻŽ āĻĒāϰāĻŋāĻŽāĻžāĻŖ (āϝā§āĻŽāύ āĻāĻāĻāĻŋ) āĻĄāĻžāĻāĻž āĻĒā§āϝāĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- āĻāϰ āĻĢ āĻŋāĻĄāĻŦā§āϝāĻžāĻ āĻ āĻŋāĻāĻ āĻžāĻ āĻāϞ⧠āϏ⧠āϏā§āĻĒāĻŋāĻĄ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāϰ⧠(⧍āĻāĻŋ, āϤāĻžāϰāĻĒāϰ ā§ĒāĻāĻŋ, ā§ŽāĻāĻŋ.. āĻāĻāĻžāĻŦā§)āĨ¤ āĻ āϰā§āĻĨāĻžā§ āĻļā§āϰā§āĻāĻž āĻšāϝāĻŧ āϧā§āϰāĻāϤāĻŋāϤ⧠(Slow Start) āĻāĻŦāĻ āϧā§āϰ⧠āϧā§āϰ⧠āϏā§āĻĒāĻŋāĻĄ āĻŦāĻžāĻĄāĻŧā§āĨ¤ āĻ āĻāĻžāϰāĻŖā§āĻ āĻā§āύ⧠āĻŦāĻĄāĻŧ āĻĢāĻžāĻāϞ āĻĄāĻžāĻāύāϞā§āĻĄā§āϰ āĻļā§āϰā§āϤ⧠āϏā§āĻĒāĻŋāĻĄ āĻāĻŽ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāϝāĻŧā§āĻ āϏā§āĻā§āύā§āĻĄ āĻĒāϰ āϤāĻž āĻĢā§āϞ āϏā§āĻĒāĻŋāĻĄā§ āĻāĻ ā§āĨ¤
đ 38. What is the role of IP in addressing and routing data packets across networks?â
PreviewClick to view details
āϤā§āĻŽāĻŋ google.com-āĻ request āĻĒāĻžāĻ āĻžāϞā§:
IP āĻāĻžāĻĄāĻŧāĻž: "āĻā§āĻĨāĻžāϝāĻŧ āϝāĻžāĻŦā§?" â āĻā§āĻ āĻāĻžāύ⧠āύāĻž
IP āĻĻāĻŋāϝāĻŧā§: "142.250.80.46-āĻ āϝāĻžāĻ" â āϏā§āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ āĻŋāĻāĻžāύāĻž
IP āĻšāϞ⧠internet-āĻāϰ postal system â
āĻ āĻŋāĻāĻžāύāĻž āĻāĻžāĻĄāĻŧāĻž āĻāĻŋāĻ āĻŋ āϝā§āĻŽāύ āĻĒā§āĻāĻāĻžāϝāĻŧ āύāĻž,
IP āĻāĻžāĻĄāĻŧāĻž packet-āĻ āĻĒā§āĻāĻāĻžāϝāĻŧ āύāĻžāĨ¤
đˇī¸ Part 1: Addressing â āĻĒā§āϰāϤāĻŋāĻāĻŋ Device-āĻāϰ āĻĒāϰāĻŋāĻāϝāĻŧâ
IP Address-āĻāϰ āĻāĻ āύ (IPv4)â
PreviewClick to view details
IP Address: 192 . 168 . 1 . 5
â â â â
8 bit 8 bit 8 bit 8 bit = 32 bit āĻŽā§āĻ
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ
āĻāĻļ: 0â255
āĻŽāĻžāύā§: 0.0.0.0 āĻĨā§āĻā§ 255.255.255.255
IP address-āĻāϰ āĻĻā§āĻā§ āĻ āĻāĻļ āĻĨāĻžāĻā§ â Network part āĻāϰ Host part:
PreviewClick to view details
192.168.1.5 with subnet mask 255.255.255.0
Network part: 192.168.1 â āĻā§āύ network-āĻ āĻāĻā§
Host part: .5 â āϏā§āĻ network-āĻ āĻā§āύ device
Analogy:
192.168.1 = āĻĸāĻžāĻāĻžāϰ āĻŽāĻŋāϰāĻĒā§āϰ āĻāϞāĻžāĻāĻž
.5 = āĻŽāĻŋāϰāĻĒā§āϰā§āϰ ā§Ģ āύāĻŽā§āĻŦāϰ āĻŦāĻžāĻĄāĻŧāĻŋ
Public vs Private IPâ
PreviewClick to view details
Private IP ranges (āĻļā§āϧ⧠local network-āĻ):
10.0.0.0 â 10.255.255.255
172.16.0.0 â 172.31.255.255
192.168.0.0 â 192.168.255.255
Public IP: globally unique â internet-āĻ āĻĻā§āĻāĻž āϝāĻžāϝāĻŧ
Private IP: locally unique â āĻļā§āϧ⧠āύāĻŋāĻā§āϰ network-āĻ
âī¸ Part 2: Subnetting â Network āĻāĻžāĻ āĻāϰāĻžâ
IP address āĻļā§āϧ⧠device āĻā§āύāĻžāϝāĻŧ āύāĻž â āĻā§āύ network-āĻ āĻāĻā§ āϏā§āĻāĻžāĻ āĻŦāϞā§āĨ¤ āĻāĻāĻž āĻāϰ⧠subnet mask āĻĻāĻŋāϝāĻŧā§āĨ¤
PreviewClick to view details
IP: 192.168.1.5
Subnet mask: 255.255.255.0 (āĻŦāĻž /24 notation-āĻ)
Binary-āĻ:
IP: 11000000.10101000.00000001.00000101
Mask: 11111111.11111111.11111111.00000000
â
āĻāĻāĻžāύā§āϰ āĻĒāϰ āĻĨā§āĻā§ host part
Network: 192.168.1.0
Host: .5
āĻāĻ network-āĻ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§: 192.168.1.1 â 192.168.1.254
āĻŽā§āĻ: 254āĻāĻŋ host
đēī¸ Part 3: Routing â Packet āĻā§āĻāĻžāĻŦā§ āĻĒāĻĨ āĻā§āĻāĻā§â
Routing āĻšāϞ⧠IP-āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻāĻŋāϞ āĻāĻžāĻāĨ¤ āĻāĻāĻāĻž packet āϤāĻžāϰ destination-āĻ āĻĒā§āĻāĻāĻžāύā§āϰ āĻāĻā§ āĻ āύā§āĻ router āĻĒāĻžāϰ āĻšāϝāĻŧāĨ¤
Routing Table â Router-āĻāϰ āĻŽāĻžāύāĻāĻŋāϤā§āϰâ
āĻĒā§āϰāϤāĻŋāĻāĻŋ router-āĻāϰ āĻāĻāĻāĻž routing table āĻĨāĻžāĻā§ â āĻāĻāĻž āĻĻā§āĻā§ āϏ⧠āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āϝāĻŧ packet āĻā§āĻĨāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāĻŦā§:
PreviewClick to view details
Router-āĻāϰ Routing Table:
âââââââââââââââââââŦââââââââââââââââŦââââââââââââŦâââââââââ
â Destination â Subnet Mask â Next Hop â Interfaceâ
âââââââââââââââââââŧââââââââââââââââŧââââââââââââŧâââââââââ¤
â 192.168.1.0 â /24 â directly â eth0 â
â 10.0.0.0 â /8 â 203.1.1.1 â eth1 â
â 172.16.0.0 â /16 â 203.1.1.2 â eth1 â
â 0.0.0.0 â /0 (default) â 103.45.1.1â eth2 â
âââââââââââââââââââ´ââââââââââââââââ´ââââââââââââ´âââââââââ
Packet āĻāϏāϞ⧠destination: 10.5.3.2
â 10.0.0.0/8 match āĻāϰ⧠â 203.1.1.1-āĻ āĻĒāĻžāĻ āĻžāĻ
Default route (0.0.0.0/0) = "āĻ āύā§āϝ āĻā§āύ⧠rule āύāĻž āĻŽāĻŋāϞāϞ⧠āĻāĻāĻžāύ⧠āĻĒāĻžāĻ āĻžāĻ" â āĻāĻāĻž āĻšāϞ⧠gateway of last resortāĨ¤
đŖī¸ Routing-āĻāϰ āĻĒā§āϰ⧠āϝāĻžāϤā§āϰāĻž â Hop by Hopâ
đĻ āĻĻā§āĻ āϧāϰāύā§āϰ Routing Protocolâ
Router āĻā§āĻāĻžāĻŦā§ āϤāĻžāϰ routing table āϤā§āϰāĻŋ āĻāϰā§? āĻĻā§āĻā§ āĻāĻĒāĻžāϝāĻŧ:
Static Routingâ
PreviewClick to view details
Admin āύāĻŋāĻā§ manually route āϞā§āĻā§:
"192.168.2.0/24 network-āĻāϰ āĻāύā§āϝ 10.0.0.1-āĻ āĻĒāĻžāĻ āĻžāĻ"
āϏā§āĻŦāĻŋāϧāĻž: āϏāĻšāĻ, predictable
āĻ
āϏā§āĻŦāĻŋāϧāĻž: network āĻŦāĻĻāϞāĻžāϞ⧠manually update āĻāϰāϤ⧠āĻšāϝāĻŧ
āĻŦā§āϝāĻŦāĻšāĻžāϰ: āĻā§āĻ network, simple topology
Dynamic Routingâ
Router āĻā§āϞ⧠āύāĻŋāĻā§ āύāĻŋāĻā§ āĻ āύā§āϝ router-āĻāϰ āϏāĻžāĻĨā§ āĻāĻĨāĻž āĻŦāϞ⧠route āĻļā§āĻā§:
PreviewClick to view details
OSPF (Open Shortest Path First):
āĻāĻāĻ organization-āĻāϰ āĻŽāϧā§āϝā§
"āĻāĻŽāĻžāϰ āĻāĻžāĻ āĻĨā§āĻā§ āĻā§āύ network āĻāϤ āĻĻā§āϰā§?"
āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻŽ cost-āĻāϰ path āĻŦā§āĻā§ āύā§āϝāĻŧ
BGP (Border Gateway Protocol):
Internet-āĻāϰ backbone protocol
ISP āĻĨā§āĻā§ ISP-āĻ route āĻļā§āĻāĻžāϝāĻŧ
"Dhaka Telecom â BTCL â Global IX â Google"
āĻŦāĻŋāĻļā§āĻŦā§āϰ āϏāĻŦ router BGP āĻĻāĻŋāϝāĻŧā§ āĻāĻĨāĻž āĻŦāϞā§